package com.ksd1.notes.util;

import android.content.Context;
import android.widget.Toast;

import com.ksd1.notes.MainActivity;
import com.ksd1.notes.db.NoteDB;

import java.util.List;

/**
 * 文件夹的操作的帮助类
 */
public class NoteDirHelper {

    private static List<NoteDB.Type> TYPES;//

    /**
     * 将position位置的item移动到不同的分类，并刷新
     * @param position noteList的位置
     * @return boolean
     */
    public static boolean move(int position, String name){
        //1.查找name对应的type
        long type = NoteDB.getInstance().getType(name);

        if(type == -1 && !name.equals("全部")) return false;//没有找到该类型
        if(type == MainActivity.noteList.get(position).type) return true; //和自己的类型相同


        //2.更新note的类型
        NoteDB.Note note = MainActivity.noteList.get(position);
        note.type = type;
        NoteDB.getInstance().nupdate(note.key, note);

        //3.更新视图
        if(MainActivity.currentType == 0) return true;//展示全部，不用更新
        updateData(MainActivity.currentType);
        return true;
    }


    /**
     * 切换文件夹到dirName
     * @param dirName 文件夹的名字
     * @return boolean
     */
    public static boolean changeDir(String dirName){
        long type = NoteDB.getInstance().getType(dirName);

        if(type == -1 && !dirName.equals("全部")) return false;
        //显示全部
        if(type == -1){
            updateData();
            return true;
        }

        updateData(type);
        return true;
    }

    /**
     * @param type 更新后的类型
     * @return boolean
     */
    private static boolean updateData(long type){
        List<NoteDB.Note> notelist = NoteDB.getInstance().nquery(type);

        MainActivity.noteList.clear();
        MainActivity.noteList.addAll(notelist);
        MainActivity.noteAdapteradapter.notifyDataSetChanged();
        return true;
    }

    private static boolean updateData(){
        List<NoteDB.Note> notelist = NoteDB.getInstance().nquery();

        MainActivity.noteList.clear();
        MainActivity.noteList.addAll(notelist);
        MainActivity.noteAdapteradapter.notifyDataSetChanged();
        return true;
    }


    public static boolean addDir(Context mContext){
        Toast.makeText(mContext, "功能暂未开放", Toast.LENGTH_SHORT).show();
        return false;
    }

}
